/**
 * 权限校验:
 * Vue Router 的前置钩子函数 beforeEach(to,from,next)
 * to:即将要进入的目标路由对象
 * from：即将要离开的路由对象
 * next：
 */
import router from "./router";
import store from "./store";
import { Message } from "element-ui";
router.beforeEach((to, from, next) => {
  //1. 获取token 修改
  console.log(store)
  const token = store.state.user.token;
  if (!token) {
    //1.1 如果没有获取到，要访问非登录页面，则不允许访问
    if (to.path != "/login") {
      if (to.path == '/error') {
        next()
      } else {
        next({ path: "/login" });
      }

    } else {
      //请求登录页面
      next();
    }
  } else {
       //1.2 获取到token
      
      //1.2.1 当前在非登录页面
      if (to.path === "/login") {
        //从非登录页面到登录页面
        Message({
          message: "请先退出",
          type: "warning",
          duration: 5 * 1000
        });
        next({ path: "/user" });
      } else {
        //1.2.2 请求路由非登录页面，先在本地查看是否有用户信息
        const userInfo = store.state.user.user;
        // console.log("userINofo",userInfo)
        if (userInfo) {
          //本地有用户信息
          next();
        } else {
          //就通过token去获取用户信息
          store
            .dispatch("GetUserInfo")
            .then(resp => {
              if (resp.flag) {
                next();
              } else {
                next({ path: "/login" });
              }
            })
            .catch(error => { });
        }
      }
    
  }
});
